home *** CD-ROM | disk | FTP | other *** search
- // the declaration of class NET_ITEM_LIST
- // Copyright (C) 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
-
- #ifndef _NILIST_H_
- #define _NILIST_H_
-
- #include <list>
- #include "../kbandata/kbandata.h"
- #include "netitem.h"
-
- class NET_ITEM_LIST : public std::list<NET_ITEM> {
- void collect_primitive_pin_element(PIN_ELEMENT& elem, uint layer_number) {
- NET_ITEM net_item(layer_number, elem, &elem);
- push_back(net_item);
- }
- void collect_primitive_pin_list(PIN_LIST& list, uint layer_number) {
- PIN_LIST::iterator i;
- TRAVERSE(list, i) {
- collect_primitive_pin_element(*i, layer_number);
- }
- }
- void collect_primitive_line_element(LINE_ELEMENT& elem, uint layer_number) {
- NET_ITEM net_item(layer_number, elem);
- push_back(net_item);
- }
- void collect_primitive_line_list(LINE_LIST& list, uint layer_number) {
- LINE_LIST::iterator i;
- TRAVERSE(list, i) {
- collect_primitive_line_element(*i, layer_number);
- }
- }
- void collect_primitive_layer(LAYER& layer, uint layer_number) {
- collect_primitive_pin_list (layer.pin_list() , layer_number);
- collect_primitive_line_list(layer.line_list(), layer_number);
- }
- void collect_primitive(PRIMITIVE& primitive) {
- for(uint i = 0; i < LAYER_NUMBER; i++) {
- collect_primitive_layer(primitive.layer(i), i);
- }
- }
- void collect_component_pin_element(PIN_ELEMENT& elem, const XY& ac, uint layer_number) {
- PIN_ELEMENT& elem_shifted = elem.shift(ac);
- NET_ITEM net_item(layer_number, elem_shifted, &elem);
- push_back(net_item);
- }
- void collect_component_pin_list(PIN_LIST& list, const XY& ac, uint layer_number) {
- PIN_LIST::iterator i;
- TRAVERSE(list, i) {
- collect_component_pin_element(*i, ac, layer_number);
- }
- }
- void collect_component_line_element(LINE_ELEMENT& elem, const XY& ac, uint layer_number) {
- LINE_ELEMENT& elem_shifted = elem.shift(ac);
- NET_ITEM net_item(layer_number, elem_shifted);
- push_back(net_item);
- }
- void collect_component_line_list(LINE_LIST& list, const XY& ac, uint layer_number) {
- LINE_LIST::iterator i;
- TRAVERSE(list, i) {
- collect_component_line_element(*i, ac, layer_number);
- }
- }
- void collect_component_layer(LAYER& layer, const XY& ac, uint layer_number) {
- collect_component_pin_list (layer.pin_list() , ac, layer_number);
- collect_component_line_list(layer.line_list(), ac, layer_number);
- }
- void collect_component_element(COMPONENT_ELEMENT& elem) {
- for(uint i = 0; i < LAYER_NUMBER; i++) {
- collect_component_layer(elem.layer(i), elem.ac(), i);
- }
- }
- void collect_component_list(COMPONENT_LIST& list) {
- COMPONENT_LIST::iterator i;
- TRAVERSE(list, i) {
- collect_component_element(*i);
- }
- }
- public:
- void collect_kban_data(KBAN_DATA& kban_data) {
- collect_primitive (kban_data.primitive() );
- collect_component_list(kban_data.component_list());
- }
- };
-
- #endif /* _NILIST_H_ */
-